package com.csea.common.enums;

import com.csea.common.exception.BaseExceptionInterface;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author xiyou
 * @description 响应异常码
 */
@AllArgsConstructor
@Getter
public enum ResponseCodeEnum implements BaseExceptionInterface {

    // ----------- 通用异常状态码 -----------
    SYSTEM_ERROR("10000","出错啦，后台小哥正在努力修复中..."),

    // ----------- 业务异常状态码 -----------
    PRODUCT_NOT_FOUND("20000", "该产品不存在（测试使用）"),

    // ----------- 通用异常状态码 -----------
    PARAM_NOT_VALID("10001","参数错误！"),
    // ----------- 登录失败状态码 -----------
    LOGIN_FAIL("20000","登录失败！"),
    // ----------- 用户名或密码错误状态码 -----------
    USERNAME_OR_PWD_ERROR("20000","用户名或密码错误！"),
    // ----------- 无访问权限 -----------
    UNAUTHORIZED("20002", "无访问权限，请先登录！"),
    // ----------- 该用户不存在 -----------
    USERNAME_NOT_FOUND("20003", "该用户不存在！"),
    // ----------- 该用户已被禁用 -----------
    USER_DISABLED("20004", "该用户已被禁用！"),
    // ----------- 该用户已存在 -----------
    USERNAME_EXIST_ERROR("20005", "该用户已存在！"),
    // ----------- 文件上传失败！ -----------
    FILE_UPLOAD_FAILED("20008", "文件上传失败！"),
    // ----------- 第三方服务(扣子)出错！ -----------
    THIRD_SERVICE_ERROR("20009", "第三方服务出错！"),
    OLD_PASSWORD_MISMATCH("20010", "原密码错误！"),
    // ----------- 仓库名称已存在 -----------
    REPOSITORY_NAME_EXIST_ERROR("20011", "仓库名称已存在！"),
    // ----------- 仓库不存在 -----------
    REPOSITORY_NOT_FOUND_ERROR("20012", "仓库不存在！"),
    // ----------- 用户已登录 -----------
    USER_ALREADY_LOGGED_IN("20013", "用户已登录！"),
    // ----------- 保存用户成语失败 -----------
    SAVE_USER_IDIOM_FAIL("20014", "保存用户成语失败！"),
    // ----------- 用户成语不存在 -----------
    USER_IDIOM_NOT_FOUND_ERROR("20015", "用户成语不存在！"),
    // ----------- 权限不足 -----------
    PERMISSION_DENIED_ERROR("20016", "权限不足！"),
    // ----------- 关键字不合法 -----------
    KEYWORD_NOT_VALID_ERROR("20017", "关键字不合法！"),
    ;

    // 异常码
    private final String errorCode;
    // 错误信息
    private final String errorMsg;



}
